#include <iostream>
#include "workManager.h"
#include "work.h"
#include "employee.h"
#include "manager.h"
#include "boss.h"

using namespace std;
//职工管理系统
//公司中职工分为三类：普通员工、经理、老板，显示信息时，需要显示职工编号、职工姓名、职工岗位、以及职责
//普通员工职责：完成经理交给的任务
//经理职责：完成老板交给的任务，并下发任务给员工
//老板职责：管理公司所有事务

//管理系统中需要实现的功能如下：
//退出管理程序：退出当前管理系统
//增加职工信息：实现批量添加职工功能，将信息录入到文件中，职工信息为：职工编号、姓名、部门编号
//显示职工信息：显示公司内部所有职工的信息
//删除离职职工：按照编号删除指定的职工
//修改职工信息：按照编号修改职工个人信息
//查找职工信息：按照职工的编号或者职工的姓名进行查找相关的人员信息
//按照编号排序：按照职工编号，进行排序，排序规则由用户指定
//清空所有文档：清空文件中记录的所有职工信息 （清空前需要再次确认，防止误删）
void test1();

int main() {
    WorkManager workManager;//实例化管理者对象
    int choice;
    while (true) {
        workManager.showMenu();//调用展示菜单的成员函数
        cout << "请输入您的选择:";
        cin >> choice;
        switch (choice) {
            case 0://退出系统
                cout << "欢迎下次使用！" << endl;
                exit(0);
            case 1://添加职工
                workManager.addEpm();
                break;
            case 2://显示职工
                workManager.showEpm();
                break;
            case 3://删除职工
                workManager.delEmp();
                break;
            case 4://修改职工
                workManager.modEmp();
                break;
            case 5://查找职工
                workManager.findEmp();
                break;
            case 6://排序职工
                workManager.sortEmp();
                break;
            case 7://清空文件
                workManager.cleanFile();
                break;
            default:
                break;
        }
    }
    //test1();
    return 0;
}

void test1() {
    Worker *worker = new Employee(1, "张三", 1);
    worker->showInfo();
    delete worker;
    worker = new Manager(2, "李四", 2);
    worker->showInfo();
    delete worker;
    worker = new Boss(3, "王五", 3);
    worker->showInfo();
    delete worker;
}